The Age of Drag Race: Is Rupaul’s Drag Race biased towards younger queens?

 

Research Question

Rupaul’s Drag Race is a reality competition show for drag queens in which contestants compete to be America’s next Drag Super Star. The show has received 25 Emmy awards, spawned numerous international spin offs, and is generally considered a remarkable, worldwide phenomenon that has brought an obscure and marginalised aspect of queer culture to the masses. Of course, such success is always accompanied by controversy, one of which regards age. There have been claims that the show has a bias towards young queens.

This project visualises the spread of the ages of Drag Race contestants by season, as well as the ages of the queens that won each season. This will allow a general picture of the age range of the queens as well as the identification of whether there is a historical trend in it.

 

Data Origins

This data is provided as part of the package dragracer1. The CRAN archive (?) for the package is https://cran.r-project.org/package=dragracer.

A description of the project is available at http://svmiller.com/blog/2019/02/dragracer-rupauls-drag-race-analysis/. It includes a lovely personal narrative of the creator’s love of the art of drag and the competition show, the heated online discussions amongst the Drag Race fandom, the methods of data collection (mostly scraped from the Rupaul’s Drag Race wiki), and some of the creator’s own analyses, visualisations, and some T (conclusions) about various aspects of the show.

Because it is a package, the first time you run this script, you must run install.packages(dragracer) first.

The dragracer package includes three datasets: rpdr_contestestants, which provides information about the contestants rpdr_contep, which describes each contestants performance in each episode rpdr_ep, which gives characteristics of each episode.

The relevant datasets have been exported to csv files using this code: write.csv(rpdr_contestants, "filepath\\filename.csv", row.names = FALSE). They are available in the data folder.

#loading required packages, including the datasets

library(ggplot2)
library(plotly)
library(magrittr)
library(tidyverse)
library(dragracer) #when loaded returns a catchphrase from the show
## The library is now open
#previewing datasets

head(rpdr_contestants)
## # A tibble: 6 x 5
##   season contestant          age dob        hometown                
##   <chr>  <chr>             <dbl> <date>     <chr>                   
## 1 S01    BeBe Zahara Benet    28 1981-03-20 Minneapolis, Minnesota  
## 2 S01    Nina Flowers         34 1974-02-22 Bayamón, Puerto Rico    
## 3 S01    Rebecca Glasscock    26 1983-05-25 Fort Lauderdale, Florida
## 4 S01    Shannel              26 1979-07-03 Las Vegas, Nevada       
## 5 S01    Ongina               26 1982-01-06 Los Angeles, California 
## 6 S01    Jade                 32 1984-11-18 Chicago, Illinois
head(rpdr_contep)
## # A tibble: 6 x 11
##   season  rank missc contestant episode outcome eliminated participant minichalw
##   <chr>  <dbl> <dbl> <chr>        <dbl> <chr>        <dbl>       <dbl>     <dbl>
## 1 S01        1     0 BeBe Zaha~       1 SAFE             0           1         0
## 2 S01        2     1 Nina Flow~       1 WIN              0           1         0
## 3 S01        3     0 Rebecca G~       1 LOW              0           1         0
## 4 S01        4     0 Shannel          1 SAFE             0           1         0
## 5 S01        5     0 Ongina           1 HIGH             0           1         0
## 6 S01        6     0 Jade             1 SAFE             0           1         0
## # ... with 2 more variables: finale <dbl>, penultimate <dbl>

Data Wrangling

#create a datframe including the contestant's ages, season, and final ranking in the competition

combined <- left_join(rpdr_contestants, rpdr_contep)
## Joining, by = c("season", "contestant")
ranked <- combined %>% 
  select(c("season", "contestant","rank", "age")) %>%
  distinct() %>%
  group_by("season")

winners <- subset(ranked, rank == "1")

mean(ranked$age)
## [1] 29.14118
mean(winners$age)
## [1] 27.38462
head(ranked)
## # A tibble: 6 x 5
## # Groups:   "season" [1]
##   season contestant         rank   age `"season"`
##   <chr>  <chr>             <dbl> <dbl> <chr>     
## 1 S01    BeBe Zahara Benet     1    28 season    
## 2 S01    Nina Flowers          2    34 season    
## 3 S01    Rebecca Glasscock     3    26 season    
## 4 S01    Shannel               4    26 season    
## 5 S01    Ongina                5    26 season    
## 6 S01    Jade                  6    32 season

Visualisation

# violin and scatterplots of all contestants' ages

age_all <- ggplot(ranked, aes(x = factor(season), y = age)) +
    geom_violin(aes(color = season, fill = season), alpha = 0.5) +
    stat_summary(fun = "mean",
                 geom = "crossbar", 
                 width = 0.3) +
    geom_point(aes(color = season, fill = season),
                   position = position_jitterdodge(jitter.width = .1, dodge.width = 0), 
                   shape=21, size = 1) +
  
# graph aesthetics   
  
    labs(x = element_blank()) +
    ggtitle("Rupaul's Drag Race Contestant Ages") +
    theme(legend.position="none",  
    strip.background=element_blank(),
    axis.text.x=element_text(size=10,color="black"),
    axis.text.y=element_text(size=10,color="black"),
    panel.background = element_blank(),
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(),
    panel.border = element_rect(size= .75,fill = NA,color = "black"),
    plot.margin = unit(c(.5, 0.5, .5, .5), "cm"))
  
#adding interactive overlay of winners' ages
#clean up code?

age_plot <- ggplotly(age_all + geom_point(data = winners, aes(x = factor(season))))

age_plot <- age_plot %>% style(hoverinfo = "skip", traces = 1:40, text = winners$age)
age_plot <- age_plot %>% style(text = paste("Winner's age:", winners$age))

age_plot

Summary, Discussion

Drag Race contestants have ranged in age from 21 to 52. The average age of all participants through season 13 is 29. Winners average age is 27 There does not seem to be a significant trend in age across seasons. The relatively young average age of all contestants and winners upholds the commonly accepted belief that drag is a young girl’s game. As beloved Drag Race contestant Katya Zamolodchkava has said, “There’s nothing more depressing than an older drag queen that doesn’t want to do it.”(2)

       

References

  1. Steve Miller (2021). dragracer: Data Sets for RuPaul’s Drag Race. R package version 0.1.6. https://CRAN.R-project.org/package=dragracer
  2. Mattel, Trixie & Zamolodchikova, Katya. (2020, Feb 12). UNHhhh Ep. 114: I’m in My 30s. Youtube. https://www.youtube.com/watch?v=OilvWfWkaaw